#!/usr/bin/python
# -*-coding:UTF-8 -*-

# ========================
# @Time  : 2021/2/25
# @Author: Sunny
# ========================

"""
通过线程类的形式来实现多线程

通过使用threading模块能够完成多任务的程序开发，为了让每个线程的封装性更完美，可以通过类来封装，新建一个类
只要继承threading.Thread就可以了，然后重写run方法

说明：threading.Thread类的run方法，用于定义线程的功能函数，可以在自己的线程类中覆盖该方法，而创建自己的线程实例后，可以通过Thread
     类的start方法，可以启动该线程，交给python解释器调度，当该线程获得执行的机会时，就会调用run方法执行线程
"""
from threading import Thread
import time


#开启多线程来执行同一个任务函数的写法，重写线程类
class MyThread(Thread):
    """自定义函数类"""

    def __init__(self,name):
        super().__init__()
        self.name = name


    #重写父类的run方法
    def run(self):
        """线程执行的任务函数"""

        #完成浇花工作
        for i in range(6):
            time.sleep(1)
            print(f'{self.name}浇花的第{i + 1}秒')


#通过循环，就可以实现一个任务被多个线程同时执行，但是前提是要执行的任务函数在类里面写是
# for i in range(1000):
#     MyThread('木森').start()

m1 = MyThread('木森')
m2 = MyThread('木森')
m1.start()
m2.start()